package cn.byapps.hw.service;

import cn.byapps.hw.entity.Clazz;
import cn.byapps.hw.vo.ClazzVO;

import java.util.List;

public interface ClazzService {
    /**
     * 保存实体
     *
     * @param item
     */
    void save(Clazz item);

    /**
     * 分页查询
     *
     * @param pos  当前位置
     * @param rows 查询行数
     * @return
     */
    List<Clazz> find(Integer pos, Integer rows);

    /**
     * 统计人数
     *
     * @return
     */
    int total();

    /**
     * 根据ID删除
     *
     * @param id
     */
    void deleteById(Integer id);

    /**
     * 根据班级ID以及学生ID，从该班级中删除这名学生
     *
     * @param studentId 学生ID
     * @param clazzId   班级ID
     */
    void deleteStudentById(String studentId, Integer clazzId);

    /**
     * 根据班级ID以及课程ID，从该班级删除该课程
     *
     * @param courseId
     * @param clazzId
     */
    void deleteCourseById(Integer courseId, Integer clazzId);

    /**
     * 更新班级
     *
     * @param clazz
     */
    void update(Clazz clazz);

    /**
     * 添加新班级
     *
     * @param clazz
     */
    void add(Clazz clazz);

    /**
     * 分页查询所有班级
     *
     * @param pos
     * @param rows
     * @return
     */
    List<ClazzVO> findVO(Integer pos, Integer rows);

    /**
     * 统计班级数量
     *
     * @param clazzId
     * @return
     */
    int total(Integer clazzId);

    /**
     * 根据班级ID获取班级
     *
     * @param pos
     * @param rows
     * @param clazzId
     * @return
     */
    List<ClazzVO> findVO(Integer pos, Integer rows, Integer clazzId);

}
